<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// - `size`属性返回 Map 结构的成员总数。
	// {
	// 	const m1 = new Map();
	// 	m1.set("userName","zhangsan");
	// 	console.log(m1,m1.size);
	// }
	
	// - `set`方法设置键名`key`对应的键值为`value`，然后返回整个 Map 结构。如果`key`已经有值，则键值会被更新，否则就新生成该键。
	//   `set`方法返回的是当前的`Map`对象，因此可以采用链式写法。
	// {
	// 	const m1 = new Map();
	// 	const m2 = m1.set("userName", "zhangsan");
	// 	m2.set(1,1).set({a:1,b:2},{c:3,d:4}).set(true,1).set(function(){},100);
	// 	console.log(m2 === m1);// true
	// 	console.log(m2.size,m2)
	// }
	
	
	// - `get`方法读取`key`对应的键值，如果找不到`key`，返回`undefined`。
	// {
	// 	const m1 = new Map();
	// 	let atr = {};
	// 	m1.set("age",100);
	// 	m1.set(atr,200);
	// 	console.log(m1.get("age"),m1.get(atr),m1.get("userName"));// 100 200 undefined
	// }
	
	// - `has`方法返回一个布尔值，表示某个键是否在当前 Map 对象之中。
	// {
	// 	const m1 = new Map();
	// 	m1.set("a",1).set("b",2);
	// 	console.log(m1.has("a"));// true
	// 	console.log(m1.has("b"));// true
	// 	console.log(m1.has("c"));// false
	// }
	
	
	// - `delete`方法删除某个键，返回`true`。如果删除失败，返回`false`。
	// {
	// 	const m1 = new Map();
	// 	m1.set("a",1).set("b",2);
	// 	console.log(m1.delete("a"));// true
	// 	console.log(m1.delete("b"));// true
	// 	console.log(m1.delete("c"));// false
	// 	console.log(m1);
	// }
	
	// - `clear`方法清除所有成员，没有返回值。
	// {
	// 	const m1 = new Map();
	// 	m1.set("a",1).set("b",2);
	// 	m1.clear();
	// 	console.log(m1);
	// }
	
	// - `keys()`：返回键名的遍历器。
	// - `values()`：返回键值的遍历器。
	// - `entries()`：返回所有成员的遍历器。
	// - `forEach()`：遍历 Map 的所有成员。
	{
		const m1 = new Map();
		m1.set("a",1).set("b",2);
		// for(let key of m1.keys()){
		// 	console.log(key,m1.get(key));
		// }
		
		// for(let value of m1.values()){
		// 	console.log(value);// 1 2
		// }
		
		// for(let value of m1.entries()){
		// 	console.log(value);// ['a', 1] ['b', 2]
		// }
		
		// for(let value of m1){
		// 	console.log(value);// ['a', 1] ['b', 2]
		// }
		
		for(let [key,value] of m1){
			console.log(key,value);// a 1, b 2
		}
	}
	{
		console.log(typeof new Map());// object
	}
	
</script>
</html>